/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package CONTROLLER;

import DAO.DaoCategoria;
import DAO.DaoProdutos;
import MODEL.Categoria;
import MODEL.Produtos;
import VIEW.ProjetoFinal;
import java.net.URL;
import java.util.List;
import java.util.ResourceBundle;
import javafx.beans.property.ReadOnlyObjectWrapper;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.ComboBox;
import javafx.scene.control.SelectionMode;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.input.MouseEvent;
import javafx.util.Callback;

/**
 *
 * @author MatheuseJessica
 */
public class AtualizarProdutoController implements Initializable {
    @FXML
    TableColumn col_nome, col_categoria, col_valorVenda, col_valorCompra, col_quantia;
    @FXML
    TableView tb_produtos;
    @FXML
    TextField tf_nome, tf_valorVenda, tf_valorCompra, tf_quantidade;
    @FXML
    ComboBox cb_categorias;
    
    @FXML
    public void voltar(ActionEvent event) {
        ProjetoFinal.getInstance().gotoCaixa();
    }
    
    
    @FXML
    public void selecionaProduto(MouseEvent me){
       try{
        Produtos p = new Produtos();
        p = (Produtos) tb_produtos.getFocusModel().getFocusedItem();
        System.out.println(p.getNome() + p.getCategoria() + p.getPreco_compra());
        tf_nome.setText(p.getNome());
        tf_valorCompra.setText(String.valueOf(p.getPreco_compra()));
        tf_valorVenda.setText(String.valueOf(p.getPreco_venda()));
        tf_quantidade.setText(String.valueOf(p.getQuantia()));
        cb_categorias.setValue(p.getCategoria());
        System.out.println(p.getNome());
       }catch(Exception e){
          System.out.println(e);
           
       }
    }
    @FXML
    public void update(ActionEvent event){
        try{
            DaoProdutos dp = new DaoProdutos();
            Produtos p = new Produtos();
            p = (Produtos) tb_produtos.getFocusModel().getFocusedItem();
            p.setCategoria((Categoria)cb_categorias.getSelectionModel().getSelectedItem());
            p.setNome(tf_nome.getText());
            p.setPreco_compra(Double.parseDouble(tf_valorCompra.getText()));
            p.setPreco_venda(Double.parseDouble(tf_valorVenda.getText()));
            p.setQuantia(Double.parseDouble(tf_quantidade.getText()));
            dp.updateProduto(p);
            initialize(null, null);
        }catch(Exception e){
            System.out.println(e);
        }
    }
    
    @Override
    public void initialize(URL url, ResourceBundle rb) {
        DaoCategoria c = new DaoCategoria();
        List<Categoria> cat = c.getCategoria();
        cb_categorias.setItems(FXCollections.observableList(cat));
        col_nome.setCellValueFactory(new PropertyValueFactory<Produtos, String>("nome"));
        
        col_categoria.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<Produtos, String>, ObservableValue<String>>() {
            @Override
            public ObservableValue<String> call(TableColumn.CellDataFeatures<Produtos, String> p) {
                return new ReadOnlyObjectWrapper(p.getValue().getCategoria().getDescricao());
            }
        });

        col_quantia.setCellValueFactory(new PropertyValueFactory<Produtos, String>("quantia"));
        col_valorVenda.setCellValueFactory(new PropertyValueFactory<Produtos, String>("preco_venda"));
        col_valorCompra.setCellValueFactory(new PropertyValueFactory<Produtos, String>("preco_compra"));
        
        tb_produtos.setItems(FXCollections.observableList(new DaoProdutos().getProdutos()));
        tb_produtos.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
    }
    
}
